<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:tns="http://schemas.datacontract.org/2004/07/Common" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/Common" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation="http://localhost:57981/FaultsService.svc?xsd=xsd3" namespace="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" />
  <xs:import schemaLocation="http://localhost:57981/FaultsService.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
  <xs:complexType name="ArrayOfFaultCategory">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="FaultCategory" nillable="true" type="tns:FaultCategory" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfFaultCategory" nillable="true" type="tns:ArrayOfFaultCategory" />
  <xs:complexType name="FaultCategory">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q1="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q1:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Category" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Faults" nillable="true" type="tns:ArrayOfFault" />
          <xs:element minOccurs="0" name="FaultyCategoryID" type="xs:int" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="FaultCategory" nillable="true" type="tns:FaultCategory" />
  <xs:complexType name="ArrayOfFault">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Fault" nillable="true" type="tns:Fault" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfFault" nillable="true" type="tns:ArrayOfFault" />
  <xs:complexType name="Fault">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q2="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q2:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="FaultCategory" nillable="true" type="tns:FaultCategory" />
          <xs:element minOccurs="0" name="FaultCategoryID" type="xs:int" />
          <xs:element minOccurs="0" name="FaultCategoryReference" nillable="true" type="q2:EntityReferenceOfFaultCategoryKmbgGhhj" />
          <xs:element minOccurs="0" name="FaultDetails" nillable="true" type="tns:ArrayOfFaultDetail" />
          <xs:element minOccurs="0" name="FaultID" type="ser:guid" />
          <xs:element minOccurs="0" name="OrderDetail" nillable="true" type="tns:OrderDetail" />
          <xs:element minOccurs="0" name="OrderDetailReference" nillable="true" type="q2:EntityReferenceOfOrderDetailKmbgGhhj" />
          <xs:element minOccurs="0" name="OrderID" type="ser:guid" />
          <xs:element minOccurs="0" name="ProductID" type="xs:int" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Fault" nillable="true" type="tns:Fault" />
  <xs:complexType name="ArrayOfFaultDetail">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="FaultDetail" nillable="true" type="tns:FaultDetail" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfFaultDetail" nillable="true" type="tns:ArrayOfFaultDetail" />
  <xs:complexType name="FaultDetail">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q3="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q3:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Date" type="xs:dateTime" />
          <xs:element minOccurs="0" name="Details" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Fault" nillable="true" type="tns:Fault" />
          <xs:element minOccurs="0" name="FaultID" type="ser:guid" />
          <xs:element minOccurs="0" name="FaultReference" nillable="true" type="q3:EntityReferenceOfFaultKmbgGhhj" />
          <xs:element minOccurs="0" name="FaultStatu" nillable="true" type="tns:FaultStatu" />
          <xs:element minOccurs="0" name="FaultStatuReference" nillable="true" type="q3:EntityReferenceOfFaultStatuKmbgGhhj" />
          <xs:element minOccurs="0" name="FaultStatusID" type="xs:int" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="FaultDetail" nillable="true" type="tns:FaultDetail" />
  <xs:complexType name="FaultStatu">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q4="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q4:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Description" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="FaultDetails" nillable="true" type="tns:ArrayOfFaultDetail" />
          <xs:element minOccurs="0" name="Status" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="StatusID" type="xs:int" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="FaultStatu" nillable="true" type="tns:FaultStatu" />
  <xs:complexType name="OrderDetail">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q5="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q5:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Faults" nillable="true" type="tns:ArrayOfFault" />
          <xs:element minOccurs="0" name="Order" nillable="true" type="tns:Order" />
          <xs:element minOccurs="0" name="OrderID" type="ser:guid" />
          <xs:element minOccurs="0" name="OrderReference" nillable="true" type="q5:EntityReferenceOfOrderKmbgGhhj" />
          <xs:element minOccurs="0" name="Product" nillable="true" type="tns:Product" />
          <xs:element minOccurs="0" name="ProductID" type="xs:int" />
          <xs:element minOccurs="0" name="ProductQty" type="xs:int" />
          <xs:element minOccurs="0" name="ProductReference" nillable="true" type="q5:EntityReferenceOfProductKmbgGhhj" />
          <xs:element minOccurs="0" name="WarrantyExpiryDate" type="xs:dateTime" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="OrderDetail" nillable="true" type="tns:OrderDetail" />
  <xs:complexType name="Order">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q6="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q6:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="OrderDate" type="xs:dateTime" />
          <xs:element minOccurs="0" name="OrderDetails" nillable="true" type="tns:ArrayOfOrderDetail" />
          <xs:element minOccurs="0" name="OrderID" type="ser:guid" />
          <xs:element minOccurs="0" name="User" nillable="true" type="tns:User" />
          <xs:element minOccurs="0" name="UserReference" nillable="true" type="q6:EntityReferenceOfUserKmbgGhhj" />
          <xs:element minOccurs="0" name="Username" nillable="true" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Order" nillable="true" type="tns:Order" />
  <xs:complexType name="ArrayOfOrderDetail">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="OrderDetail" nillable="true" type="tns:OrderDetail" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfOrderDetail" nillable="true" type="tns:ArrayOfOrderDetail" />
  <xs:complexType name="User">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q7="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q7:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Carts" nillable="true" type="tns:ArrayOfCart" />
          <xs:element minOccurs="0" name="CommentsProducts" nillable="true" type="tns:ArrayOfCommentsProduct" />
          <xs:element minOccurs="0" name="Country" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Email" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Mobile" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Orders" nillable="true" type="tns:ArrayOfOrder" />
          <xs:element minOccurs="0" name="PIN" type="xs:int" />
          <xs:element minOccurs="0" name="Password" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="ProductRatings" nillable="true" type="tns:ArrayOfProductRating" />
          <xs:element minOccurs="0" name="Residence" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Roles" nillable="true" type="tns:ArrayOfRole" />
          <xs:element minOccurs="0" name="Street" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Surname" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Town" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Username" nillable="true" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="User" nillable="true" type="tns:User" />
  <xs:complexType name="ArrayOfCart">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Cart" nillable="true" type="tns:Cart" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfCart" nillable="true" type="tns:ArrayOfCart" />
  <xs:complexType name="Cart">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q8="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q8:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Product" nillable="true" type="tns:Product" />
          <xs:element minOccurs="0" name="ProductID" type="xs:int" />
          <xs:element minOccurs="0" name="ProductReference" nillable="true" type="q8:EntityReferenceOfProductKmbgGhhj" />
          <xs:element minOccurs="0" name="Quantity" type="xs:int" />
          <xs:element minOccurs="0" name="User" nillable="true" type="tns:User" />
          <xs:element minOccurs="0" name="UserReference" nillable="true" type="q8:EntityReferenceOfUserKmbgGhhj" />
          <xs:element minOccurs="0" name="Username" nillable="true" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Cart" nillable="true" type="tns:Cart" />
  <xs:complexType name="Product">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q9="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q9:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Carts" nillable="true" type="tns:ArrayOfCart" />
          <xs:element minOccurs="0" name="CategoryID" type="xs:int" />
          <xs:element minOccurs="0" name="CommentsProducts" nillable="true" type="tns:ArrayOfCommentsProduct" />
          <xs:element minOccurs="0" name="DateListed" type="xs:dateTime" />
          <xs:element minOccurs="0" name="Features" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Image" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="OrderDetails" nillable="true" type="tns:ArrayOfOrderDetail" />
          <xs:element minOccurs="0" name="Price" type="xs:decimal" />
          <xs:element minOccurs="0" name="ProductCategory" nillable="true" type="tns:ProductCategory" />
          <xs:element minOccurs="0" name="ProductCategoryReference" nillable="true" type="q9:EntityReferenceOfProductCategoryKmbgGhhj" />
          <xs:element minOccurs="0" name="ProductID" type="xs:int" />
          <xs:element minOccurs="0" name="ProductRatings" nillable="true" type="tns:ArrayOfProductRating" />
          <xs:element minOccurs="0" name="Stock" type="xs:int" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Product" nillable="true" type="tns:Product" />
  <xs:complexType name="ArrayOfCommentsProduct">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="CommentsProduct" nillable="true" type="tns:CommentsProduct" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfCommentsProduct" nillable="true" type="tns:ArrayOfCommentsProduct" />
  <xs:complexType name="CommentsProduct">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q10="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q10:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Comment" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="CommentID" type="xs:int" />
          <xs:element minOccurs="0" name="Date" type="xs:dateTime" />
          <xs:element minOccurs="0" name="Product" nillable="true" type="tns:Product" />
          <xs:element minOccurs="0" name="ProductID" type="xs:int" />
          <xs:element minOccurs="0" name="ProductReference" nillable="true" type="q10:EntityReferenceOfProductKmbgGhhj" />
          <xs:element minOccurs="0" name="User" nillable="true" type="tns:User" />
          <xs:element minOccurs="0" name="UserReference" nillable="true" type="q10:EntityReferenceOfUserKmbgGhhj" />
          <xs:element minOccurs="0" name="Username" nillable="true" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="CommentsProduct" nillable="true" type="tns:CommentsProduct" />
  <xs:complexType name="ProductCategory">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q11="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q11:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Category" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="CategoryID" type="xs:int" />
          <xs:element minOccurs="0" name="Products" nillable="true" type="tns:ArrayOfProduct" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="ProductCategory" nillable="true" type="tns:ProductCategory" />
  <xs:complexType name="ArrayOfProduct">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Product" nillable="true" type="tns:Product" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfProduct" nillable="true" type="tns:ArrayOfProduct" />
  <xs:complexType name="ArrayOfProductRating">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ProductRating" nillable="true" type="tns:ProductRating" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfProductRating" nillable="true" type="tns:ArrayOfProductRating" />
  <xs:complexType name="ProductRating">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q12="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q12:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Product" nillable="true" type="tns:Product" />
          <xs:element minOccurs="0" name="ProductID" type="xs:int" />
          <xs:element minOccurs="0" name="ProductReference" nillable="true" type="q12:EntityReferenceOfProductKmbgGhhj" />
          <xs:element minOccurs="0" name="Rating" type="xs:int" />
          <xs:element minOccurs="0" name="User" nillable="true" type="tns:User" />
          <xs:element minOccurs="0" name="UserReference" nillable="true" type="q12:EntityReferenceOfUserKmbgGhhj" />
          <xs:element minOccurs="0" name="Username" nillable="true" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="ProductRating" nillable="true" type="tns:ProductRating" />
  <xs:complexType name="ArrayOfOrder">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Order" nillable="true" type="tns:Order" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfOrder" nillable="true" type="tns:ArrayOfOrder" />
  <xs:complexType name="ArrayOfRole">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Role" nillable="true" type="tns:Role" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfRole" nillable="true" type="tns:ArrayOfRole" />
  <xs:complexType name="Role">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q13="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q13:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Menus" nillable="true" type="tns:ArrayOfMenu" />
          <xs:element minOccurs="0" name="Role1" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="RoleID" type="xs:int" />
          <xs:element minOccurs="0" name="Users" nillable="true" type="tns:ArrayOfUser" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Role" nillable="true" type="tns:Role" />
  <xs:complexType name="ArrayOfMenu">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Menu" nillable="true" type="tns:Menu" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfMenu" nillable="true" type="tns:ArrayOfMenu" />
  <xs:complexType name="Menu">
    <xs:complexContent mixed="false">
      <xs:extension xmlns:q14="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" base="q14:EntityObject">
        <xs:sequence>
          <xs:element minOccurs="0" name="Action" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="MenuID" type="xs:int" />
          <xs:element minOccurs="0" name="Position" nillable="true" type="xs:int" />
          <xs:element minOccurs="0" name="Roles" nillable="true" type="tns:ArrayOfRole" />
          <xs:element minOccurs="0" name="Title" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="URL" nillable="true" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Menu" nillable="true" type="tns:Menu" />
  <xs:complexType name="ArrayOfUser">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="User" nillable="true" type="tns:User" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfUser" nillable="true" type="tns:ArrayOfUser" />
  <xs:complexType name="ArrayOfFaultStatu">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="FaultStatu" nillable="true" type="tns:FaultStatu" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfFaultStatu" nillable="true" type="tns:ArrayOfFaultStatu" />
</xs:schema>